Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

loader: Lazily allocate ICD surface objects #1659

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

aqnuep
Copy link
Contributor

@aqnuep aqnuep commented Feb 18, 2025

Fixes #1541.

This is marked as draft, because there are some open questions:

  • Do we want to have code-gen for the surface create info structure chain copies? I had to do a separate copy, because the currently captured create parameters are not complete, and there's one NVIDIA extension struct for surface creation which requires chained copies. They don't get modified often, but code-gen would be a more future proof solution
  • I had to modify the test framework, because the sType of surface create infos were not set before and now the new code expects correct input, not invalid (due to the create info copies). I hope that's okay.

@ci-tester-lunarg
Copy link

CI Vulkan-Loader build queued with queue ID 374508.

@ci-tester-lunarg
Copy link

CI Vulkan-Loader build queued with queue ID 374525.

@ci-tester-lunarg
Copy link

CI Vulkan-Loader build # 2918 running.

@ci-tester-lunarg
Copy link

CI Vulkan-Loader build # 2918 passed.

Copy link
Collaborator

@charles-lunarg charles-lunarg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After a first review, my impression is that this 1. cleans the code up nicely and 2. the wsi code should really be generated.

As far as pNext chains go, there shouldn't be any unknown types due to the Loader preventing any unknown instance level extensions from being enabled. This can be disabled, but the policy prevents the common situation of "new instance level extension silently breaks code" by forcing a new loader to be used.

There is a new codegen feature in town with the latest header update, vulkan_object.py.

I would hold off doing any major changes to the code gen due so that the new (much better!) code gen can be used instead, which should be much easier to use and less "oh dear god". I can work on it shortly but am happy to review any codgen related changes you make. Wanted to establish who's doing what so nobody does work unnecessarily.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

terminator_CreateDisplayPlaneSurfaceKHR() with multiple ICDs
3 participants